import { defineStore } from 'pinia'
// @ts-ignore
import {ElLoading,ElMessage} from "element-plus";
import {getCurrentInstance} from "vue";
// @ts-ignore

export default defineStore('storeIdB', {
    // 其他配置...
    state: ()=>{
        return{
            // 原始数据商品列表
            proList:[],
            // 渲染数据
            searchList: [],
            keyArr: []
        }
    },
    // pinia中的getters与vuex中的一摸一样
    getters: {
    },
    // 同步异步统一到actions中了
    actions: {
        // 加载动画
        loading():void {
            const load = ElLoading.service({
                lock: true,
                text: '数据库比对中...',
                background: 'rgba(0, 0, 0, 0.7)',
            })
            setTimeout(():void => {
                load.close()
            }, 1000)
        },
        // 商品列表数据请求
        async http():Promise<void> {
            // @ts-ignore 获取全局的一个对象
            const {proxy} = getCurrentInstance()
            // console.log(proxy.$echarts)
            // 用解构的方式把数据解构出来使用并且赋值给proList、searchList
            // console.log(555, proxy.$axios)
            const {data: {data}} = await proxy.$axios.get('/json/evaluate.json')
            this.proList = data
            this.searchList =data
        },
        //  商品数据proList组件中点击search执行筛选方法
        // 搜索功能
        searchA(val:any){
            this.searchList = this.proList.filter((item:any)=>{
                if(val.member===''&&val.name===''&&val.time===''&& val.state=== ''){
                     return this.searchList = this.proList
                }else{
                    console.log(item.state, val.state)
                    return item.state === val.state ||item.member === val.member || item.time ===val.time || item.name ===val.name
                }
            })
            if(this.searchList==this.proList){
                ElMessage({
                    type: '未参数还原所有选项'
                })
            }else if(this.searchList.length === 0){
                ElMessage({
                    type: 'warning',
                    message: '没有对应的商品'
                })
            }else{
                ElMessage({
                    type: 'success',
                    message: '商品如下'
                })
            }
        },
        // 商品数据添加数据
        batch():void {
            if(this.keyArr[0] === undefined){
                ElMessage({
                    type: 'warning',
                    message:'没有已选项'
                })
                return
            }else{
                //@ts-ignore console.log(proxyObj)
                this.keyArr.forEach((item:any)=>{
                    this.searchList = this.proList.filter((itemA:any)=>{
                        return itemA.key !== item
                    })
                    this.proList = this.searchList
                })
                ElMessage({
                    type: 'success',
                    message: '已经删除了一个或多个选项'
                })
            }

        },
        // 商品列表删除数据
        filterB(key: number):void{
            this.searchList = this.proList.filter((item:any):boolean =>item.key !==key)
            this.proList = this.searchList
            ElMessage({
                type: 'success',
                message: '删除成功'
            })
        },
        // // 商品列表修改数据
        editA(val: string, key: number) {
            console.log(val)
            this.proList.some((item: any) => {
                if (item.key === key) {
                    if(item.state === '正在审核'){
                        // this.loading()
                        ElMessage({
                            message: '已经在审核中...',
                            grouping: true,
                            type: 'error',
                        })
                    }else if(item.state === '审核失败'){
                        // this.loading()
                        ElMessage({
                            message: '正在审核，请稍后...',
                            grouping: true,
                            type: 'info',
                        })
                        item.state = '正在审核'
                    }else {
                        // this.loading()
                        ElMessage({
                            message: '审核已经通过...',
                            grouping: true,
                            type: 'success',
                        })
                    }
                    return true
                }
            })
        },
    //     数据替换
        Replace(val:any) {
            this.keyArr = val
        }
    }
});

export class useStore {
}
